#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main (){
    int fd1, fd2;
    if ((fd1 = open("./data", O_RDONLY)) < 0) {
        perror("open error");
        exit(1);
    }
    
    int ret;
//    int ret = write(fd1, "12345", 5);
//    if (ret < 0) {
//        perror("write error");
//        exit(2);
//    }
    
    fd2 = dup(fd1);
    printf("fd1 = %d, fd2 = %d\n", fd1, fd2);
    
//    fdatasync(fd1);

    char buf[20];
    int n = read(fd2, buf, sizeof(buf));
    if (ret < 0) {
        perror("read error");
        exit(1);
    }
    // printf("%s\n", buf);
    write(STDOUT_FILENO, buf, n);

    close(fd1);
    printf("close fd1\n");
    n = read(fd2, buf, sizeof(buf));
    if (ret < 0) {
        perror("read error");
        exit(2);
    }
    else write(STDOUT_FILENO, buf, n);


    return 0;
    
}


